Memory devices are used in many different types of systems, including computers, storage systems, portable devices, and so forth. Certain types of memory devices are volatile; in other words, such memory devices when disconnected electrically from a power source lose data stored in the memory devices.
In one example implementation, volatile memory devices can be provided on storage controllers such as RAID (redundant arrays of inexpensive disks) controllers in storage array systems for use as cache memory. The cache memory used by a storage controller provides increased read and write throughput, since the cache memory typically has faster access speeds than persistent storage devices in storage systems.
For example, in response to a read request from a host, if the requested data happens to be in the cache memory, then the read request can be satisfied relatively quickly. Similarly, posted write or write caching operations can be performed in which data is written to the cache memory in response to a write request, and the host is notified that the write request is complete once the data is written to the cache memory, even though the storage controller has not yet written the data to persistent storage.
However, an issue associated with using cache memory is that if the storage controller were to fail, then data contained in the cache memory of the failed storage controller may be lost. This is undesirable in scenarios where write data in the cache memory has not yet been written back to the persistent storage.
Conventionally, to preserve data in cache memory devices of a failed storage controller, cache memory devices are transferred (physically moved) from the failed storage controller to a functional storage controller. During the transfer, batteries or capacitors can be provided on the cache memory devices to allow the cache memory devices to maintain stored data during transfer from the failed storage controller to the functional storage controller. An issue associated with using batteries or capacitors on cache memory devices is that batteries or capacitors can take up valuable circuit board space. Moreover, batteries have a finite shelf life, such that older batteries may not function properly after some amount of time, and would have to be disposed. Also, because batteries contain hazardous materials, they are subject to special disposal procedures. Moreover, charging and/or monitoring circuits often have to be provided on cache memory devices if batteries are used, which also take up valuable circuit board space. In addition, since batteries or capacitors provide power for only a small amount of time, data in cache memory devices may still be lost if the transfer of the cache memory devices is not completed prior to expiration of the batteries or capacitors.